public class SyntaxNode
{
    public SyntaxNodeType type;
    public String value;
    public SyntaxNode operand1;
    public SyntaxNode operand2;

    public SyntaxNode(SyntaxNodeType type, String value, SyntaxNode operand1, SyntaxNode operand2)
    {
        InitData(type, value, operand1, operand2);
    }

    public SyntaxNode(SyntaxNodeType type)
    {
        InitData(type, "", null, null);
    }

    public SyntaxNode(SyntaxNodeType type, String value)
    {
        InitData(type, value, null, null);
    }

    private void InitData(SyntaxNodeType type, String value, SyntaxNode operand1, SyntaxNode operand2)
    {
        this.type = type;
        this.value = value;
        this.operand1 = operand1;
        this.operand2 = operand2;
    }
}
